﻿using Newtonsoft.Json;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WebApplication1.Models;
using WebApplication1.Models.Database;

namespace WebApplication1.service
{
    public class RedisService:IRedisService
    {
        private readonly IDatabase _redis;
        /// <summary>
        /// 构造注入
        /// </summary>
        /// <param name="client"></param>
        public RedisService(RedisHelper client)
        {
            //创建Redis连接对象
            _redis = client.GetDatabase();
        }
        /// <summary>
        /// 记录用户的游览记录
        /// </summary>
        public void AddGooodView(int userId,Good good)
        {

            //使用redis取代本地缓存
            //之前缓存下来的浏览记录  每个用户浏览记录都是单独的 每个用户都有自己的key  UserViews28\UserViews20
            var key = $"UserViews{userId}";

            //向列表添加数据
            // _redis.ListLeftPush() 1 1
            //6 5 4 3 2 1
            // 0 4 前5条

            // _redis.ListRightPush() 1 1
            //1 2 3 4 5 6 7 8 9

            //取决于我们用的人 程序员
            //浏览记录 前面是最近浏览的 后面是
            //获取浏览记录的接口 前5的
            var jsonStr = JsonConvert.SerializeObject(good);
            _redis.ListLeftPush(key, jsonStr);
        }
    }
}
